export interface TradingSignal {
  symbol: string;
  action: 'BUY' | 'SELL' | 'HOLD' | 'CLOSE';
  quantity: number;
  price?: number;
  stopLoss?: number;
  takeProfit?: number;
  leverageRecommendation?: number;
  confidence: number;
  reasoning: string;
  timestamp: number;
  urgency: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
}

export interface RiskAssessment {
  currentRisk: number;
  maxAllowedRisk: number;
  positionSizeRecommendation: number;
  stopLossRecommendation: number;
  takeProfitRecommendation: number;
  leverageRecommendation: number;
  riskLevel: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
  warnings: string[];
}

export interface TradingState {
  isActive: boolean;
  currentSymbol: string;
  totalTrades: number;
  successfulTrades: number;
  failedTrades: number;
  currentBalance: number;
  lastTradeTime?: Date;
  currentPosition?: {
    symbol: string;
    side: 'BUY' | 'SELL';
    size: number;
    entryPrice: number;
  };
}

export interface ExecutionResult {
  success: boolean;
  orderId?: string;
  executedPrice?: number;
  executedQuantity?: number;
  pnl?: number;
  error?: string;
  timestamp: Date;
}

export interface PerformanceMetrics {
  totalReturn: number;
  winRate: number;
  maxDrawdown: number;
  sharpeRatio: number;
  averageReturn: number;
  totalTrades: number;
  profitableTrades: number;
}